perm filename FOO.LST[DOC,TOB] blob sn#042770 filedate 1973-05-23 generic text, type T, neo UTF8
␈↓↓␈↓α␈↓β␈↓∧␈↓␈↓∂␈↓␈↓ β|␈↓P␈↓βrogram to␈↓ O␈↓βutput on␈↓ X␈↓βerox graphics printer
␈↓α␈↓ αe(Program to switch fonts and justify text, by Robert Elton Maas, 1973 March)
␈↓α␈↓ βtThis writeup is ␈↓↓POX.WRU[XGP,REM]  ␈↓β1973 MAY 13  p.1
␈↓ ∧&The system command to run this program is ␈↓↓R POX
␈↓α␈↓ α↑If you need help, the system command ␈↓↓HELP POX␈↓α points to documentation etc.

␈↓ ↓H
␈↓β␈↓ ↓H␈α?␈α⊃The␈α⊃program␈α⊂asks␈α⊂for␈α⊂a␈α⊂command␈α⊂string␈α⊂of␈α⊂the␈α⊂form␈α⊂<OUTPUT␈α⊂FILE>←<INPUT␈α⊂FILE>␈α⊂with␈α⊂perhaps
␈↓ ↓Hswitches␈αafter␈αthe␈α
input␈α
file␈α
name.␈α
The␈α
input␈α
file␈α
may␈α
contain␈α
line␈α
numbers␈α
or␈α
a␈α
TV-EDIT␈α
directory␈α
which␈α
will␈α
be
␈↓ ↓Hignored.␈αIt␈αmay␈αalso␈αcontain␈αXGP␈αescape␈αcharacters␈α(RUBOUT␈αfollowed␈αby␈α↓␈αor␈αα)␈αat␈αmost␈αplaces␈αin␈α
the␈α
file.␈α
The
␈↓ ↓Houtput␈αfile␈αwill␈αbe␈αin␈αa␈αform␈αthat␈αcan␈αbe␈αcopied␈αdirectly␈αto␈αthe␈αXGP␈αin␈αmode␈α0␈αby␈αmeans␈αof␈αthe␈α"XG"␈αcommand,
␈↓ ↓Hand␈αin␈αaddition␈αthere␈α
will␈α
be␈α
a␈α
file␈α
QQXGP.RPG␈α
written,␈α
which␈α
contains␈α
the␈α
font␈α
switches␈α
needed␈α
for␈α
listing␈α
the␈α
file
␈↓ ↓Hon␈α∂the␈α∂XGP.␈α∂Upon␈α∞exit,␈α∞it␈α∞will␈α∞put␈α∞␈↓∂XG␈α∞@QQXGP.RPG␈α∞␈↓βinto␈α∞your␈α∞TTY␈α∞buffer␈α∞so␈α∞that␈α∞all␈α∞you␈α∞have␈α∞to␈α∞do␈α∞is␈α∞hit
␈↓ ↓Hcarriage␈α
return␈α
to␈α
gronk␈α
the␈α
XGP.
␈↓ ↓H␈α?␈α⊃The␈αfirst␈αcharacter␈αof␈αthe␈αinput␈αfile␈αwill␈αbe␈αinterpreted␈αas␈αthe␈αescape␈αcharacter␈αyou␈αwish␈αto␈αuse␈αinitially.
␈↓ ↓H(In␈α
the␈αremainder␈αof␈αthis␈αwriteup,␈αthe␈αcharacter␈α␈↓1␈↓β␈αrepresents␈αwhatever␈αEscape␈αCharacter␈αyou␈αhave␈αin␈αeffect␈αat
␈↓ ↓Hthe␈αmoment.)␈αSubsequent␈αoccurrances␈αof␈αthis␈αcharacter␈αwill␈αescape␈αto␈αcommand␈αmode␈αand␈αcause␈αspecial␈αthings␈αto
␈↓ ↓Hhappen␈αdepending␈αon␈αthe␈αnext␈αcharacter␈α(see␈αbelow).␈αIf,␈αhowever,␈αthe␈αsecond␈αcharacter␈αof␈αyour␈αfile␈αis␈α|␈αor␈α.␈αthen
␈↓ ↓Hthis␈αprogram␈αwill␈αassume␈αyou␈αleft␈αout␈αthe␈αinitial␈αdefinition␈αof␈αthe␈αbreak␈αcharacter,␈αand␈αwill␈αretroactively␈αescape
␈↓ ↓Hon␈α
the␈αfirst␈αcharacter.␈αUsing␈αthis␈αfeature␈αallows␈αyou␈αto␈αcreate␈αfiles␈αthat␈αmay␈αbe␈αconcatinated␈αwithout␈αre-editing
␈↓ ↓Hanything.␈α
Simply␈α
begin␈αeach␈αfile␈αwith␈α␈↓1␈↓β|␈↓1␈↓β␈αor␈α␈↓1␈↓β.<crlf>␈αand␈αdelete␈αdirectory␈αpages␈αwhenever␈αconcatinating.␈α␈↓α(The
␈↓ ↓Habove␈αparagraph,␈αand␈αall␈αinformation␈αabout␈α␈↓1␈↓α-commands␈αfrom␈αhere␈αto␈αthe␈αend␈αof␈αthis␈αwriteup,␈αdo␈αnot
␈↓ ↓Happly␈α
at␈α
all␈α
if␈α
the␈α␈↓∂/XAPJUS␈↓α␈αswitch␈αhas␈αbeen␈αused,␈αin␈αwhich␈αcase␈αyour␈αsource␈αfile␈αshould␈α␈↓∧NOT␈↓α␈αcontain
␈↓ ↓Hany␈α
escape␈α
characters␈α
whatsoever.)␈↓β
␈↓ ↓H␈α?␈α⊃Below␈α∂is␈α∂a␈α∂list␈α∂of␈α∂commands,␈α∂where␈α∂␈↓∂<N>␈↓β␈α∂represents␈α∞a␈α∞character␈α∞in␈α∞the␈α∞range␈α∞of␈α∞0,1,2,...,9,A,B,...,F␈α∞that
␈↓ ↓Hspecifies␈α
the␈α
font␈α
ID␈αnumber,␈α␈↓∂<KH>␈↓β␈αrepresents␈αany␈αcharacter,␈αand␈α␈↓∂<FONT>␈↓β␈αrepresents␈αa␈αfont␈αfilename␈α(defaults
␈↓ ↓Hare␈α
.FNT[XGP,SYS])

␈↓ ↓H
␈↓1␈↓∂|<KH>		␈↓ β"␈↓β(changes␈α
the␈α
escape␈α
character␈α
to␈α
␈↓∂<KH>␈↓β)
␈↓1␈↓∂M<N><FONT>;	␈↓ β"␈↓β(causes␈α
the␈α
font␈α
to␈α
be␈α
compiled,␈α
and␈α
selects␈α
it␈α
now)
␈↓1␈↓∂F<N>		␈↓ β"␈↓β(selects␈α
a␈α
font␈α
which␈α
has␈α
already␈α
been␈α
compiled)
␈↓1␈↓∂f<N>		␈↓ β"␈↓β(selects␈α
a␈α
font␈α
for␈α
just␈α
one␈α
character,␈α
then␈α
back␈α
to␈α
old␈α
font)
␈↓1␈↓∂S		␈↓ β"␈↓β(generates␈α
a␈α
sample␈α
of␈α
the␈α
currently-selected␈α
font,␈α
see␈α
bulletin␈α
board)
␈↓1␈↓∂;		␈↓ β"␈↓β(everything␈αuntil␈αnext␈αcrlf␈αis␈αa␈αcomment,␈αtyped␈αon␈αtty␈α
but␈α
not␈α
included␈α
in␈α
output␈α
file,
␈↓ β"the␈αcrlf␈αis␈αflushed␈αtotally␈α--␈αactually,␈αthe␈αmost␈αfrequent␈αusage␈αof␈αthis␈αcommand␈αis␈αto
␈↓ β"break␈αup␈αa␈αvery-long␈αinput␈α
line␈α
without␈α
causing␈α
<crlf>␈α
to␈α
appear␈α
in␈α
the␈α
middle␈α
of␈α
the
␈↓ β"output)
␈↓1␈↓∂,		␈↓ β"␈↓β(same␈αas␈α␈↓1␈↓∂;␈↓β␈αexcept␈αit␈αflushes␈αthrough␈αnext␈αpage␈αmark␈αor␈αform-feed␈α--␈αnot␈αvalid␈αin
␈↓ β"paragraph␈α
mode␈α
etc.)
␈↓1␈↓∂J		␈↓ β"␈↓β(begins␈αfull-justify␈αsubmode,␈αuse␈α␈↓1␈↓β.␈αto␈αexit␈αthis␈αmode,␈αappend␈α<crlf>,␈αand␈αflush␈αinput
␈↓ β"data␈αthrough␈αnext␈α<crlf>␈α--␈αwhile␈αin␈αthis␈αmode,␈αthe␈αonly␈αsystem␈αrubout-style␈αescape
␈↓ β"command␈α⊃that␈α⊃is␈α⊃legal␈α⊃is␈α⊃"change␈α⊃font"␈α⊃--␈α⊃the␈α⊃following␈α⊃␈↓1␈↓β-style␈α⊂commands␈α⊂are
␈↓ β"presently␈α
available:␈α
␈↓11␈↓∂␈α
␈↓1␈↓∂F<N>␈↓β␈α
--␈α
soon␈α
we␈α
will␈α
also␈α
have:␈α
␈↓1␈↓∂↑Q␈α
␈↓1␈↓∂↓Q␈α
␈↓1␈↓∂∩␈α
␈↓1␈↓∂∪␈↓β␈α
␈↓1␈↓∂⊗␈↓β)
␈↓1␈↓∂R		␈↓ β"␈↓β(begins␈α⊃align-text-against-right-margin-mode,␈α⊂until␈α⊂the␈α⊂next␈α⊂<crlf>␈α⊂(output␈α⊂<crlf>
␈↓ β"and␈αgo␈αto␈αnext␈αline)␈α␈↓1␈↓β;␈α(no␈α<crlf>,␈αflush␈αinput␈αthrough␈αnext␈α<crlf>)␈αor␈α␈↓1␈↓β.␈α(no␈α<crlf>,
␈↓ β"resume␈α
input␈α
parsing␈α
immediately)␈α
occurs␈α
--␈α
the␈αlatter␈αtwo␈αwill␈αallow␈αoverprinting
␈↓ β"--␈α
almost␈α
the␈α
same␈α
command␈α
restrictions␈α
as␈α
␈↓1␈↓∂J␈↓β␈α
mode)
␈↓1␈↓∂C		␈↓ β"␈↓β(begins␈α
center-the-line␈α
mode,␈α
similar␈α
to␈α
␈↓1␈↓∂R␈↓β)
␈↓11			␈↓ β"␈↓β(quotes␈α
the␈α
escape␈α
character)

␈↓ ↓H
␈↓α␈↓ ∧HThis writeup is ␈↓↓POX.WRU[XGP,REM]  ␈↓βp.2

␈↓ ↓H
␈↓↓␈↓ ¬vQ-REGISTERS
␈↓β␈↓ ↓H␈α?␈α⊃There␈α⊂are␈α⊂128␈α⊂registers␈α⊂which␈α⊂can␈α⊂hold␈α⊂any␈α⊂36-bit␈α⊂integer,␈α⊂usually␈α⊂the␈α⊂horizonal␈α⊂coordinate␈α∂of␈α∂some
␈↓ ↓Hcolumn␈αon␈αthe␈αpage.␈αThe␈αidea␈αis␈αto␈αallow␈αspecification␈αof␈αmulti-column␈αtables␈α
and␈α
␈↓αsuperscripts-above-subscripts␈↓β
␈↓ ↓Hin␈α⊂an␈α⊂easy␈α⊂and␈α⊂flexable␈α⊂way,␈α⊂including␈α⊂automatic␈α⊂allocation␈α⊂of␈α⊂such␈α⊂things␈α∂as␈α∂"␈↓α1/5␈α∂of␈α∂a␈α∂page␈↓β"␈α∂by␈α∂simple
␈↓ ↓Hdivision.␈αEach␈αregister␈αis␈αspecified␈αby␈αan␈αASCII␈αcharacter,␈αhence␈αsome␈αregisters␈αare␈αactually␈αinaccessible,␈αbut␈α
who
␈↓ ↓Hcares?␈α⊂Register␈α⊂0␈α⊂(null␈α⊂character,␈α⊂inaccessible␈α⊂usually)␈α⊂is␈α⊂called␈α⊂the␈α⊂"␈↓αaccumulator␈↓β"␈α⊂and␈α∂is␈α∂the␈α∂intermediate
␈↓ ↓Hstorage␈αfor␈αall␈αsequences␈αof␈αarithmetic␈αcalculation.␈αOther␈αspecial␈αregisters␈αare␈αlisted␈αbelow,␈αas␈αwell␈αas␈αcharacters
␈↓ ↓Hthat␈α
don't␈α
specify␈α
q-registers␈α
at␈α
all.

␈↓ ↓H
␈↓↓MEANING OF ARGUMENT(S) TO THE COMMANDS:
␈↓ ↓H
␈↓∂<KH>		␈↓β␈↓ β"If␈α
not␈α
mentionned␈α
below,␈α
contents␈α
of␈α
q-register␈α
corresponding␈α
to␈α
that␈α
character.
␈↓∂. ␈↓β(Period)   ␈↓ β"Current␈α∂column␈α∂location␈α∂is␈α∂stored␈α∂in␈α∂this␈α∂q-register␈α∞--␈α∞Every␈α∞time␈α∞a␈α∞character␈α∞is
␈↓ β"written,␈αthis␈αq-register␈αis␈αupdated␈αto␈αaccount␈αfor␈αthe␈αspace␈αused␈αup␈α
by␈α
the␈α
character,
␈↓ β"and␈αif␈αyou␈αwrite␈αin␈αthis␈αq-register,␈αa␈αcolumn␈αselect␈αwill␈αbe␈αgenerated␈αin␈αyour␈αoutput
␈↓ β"file␈α
to␈α
really␈α
put␈α
you␈α
there.
␈↓∂L		␈↓β␈↓ β"Left␈α
margin␈α
is␈α
stored␈α
in␈α
this␈α
q-register.
␈↓∂R		␈↓β␈↓ β"Right␈α
margin␈α
is␈α
stored␈α
in␈α
this␈α
q-register.
␈↓∂'<OCTAL DIGITS>;	
␈↓ ↓H
␈↓β␈↓ β"Instead␈αof␈αreading␈αa␈αnumber␈αfrom␈αa␈αq-register,␈αthese␈αoctal␈αdigits␈αare␈αassembled␈αinto
␈↓ β"an␈α
unsigned␈α
constant␈α
and␈α
that␈α
constant␈α
acts␈α
as␈α
an␈α
immediate␈α
operand.
␈↓∂=<DECIMAL DIGITS>;
␈↓ ↓H
	␈↓β␈↓ β"Same␈α
as␈α
above␈α
except␈α
decimal␈α
conversion.
␈↓∂w<KH>	␈↓β␈↓ β"Width␈α
of␈α
that␈α
character.

␈↓ ↓H
␈↓↓THE COMMANDS, WHERE "Q" REPRESENTS AN ARGUMENT, "q-reg" INCLUDES THE ABOVE:
␈↓ ↓H
␈↓1␈↓∂←Q	␈↓β(Load ac from q-reg)
␈↓ ↓H
␈↓1␈↓∂+Q	␈↓β(ac plus q-reg, result in ac)
␈↓ ↓H
␈↓1␈↓∂-Q	␈↓β(ac minus q-reg, result in ac)
␈↓ ↓H
␈↓1␈↓∂¬Q	␈↓β(q-reg minus ac, result in ac)
␈↓ ↓H
␈↓1␈↓∂*Q	␈↓β(ac times q-reg, result in ac)
␈↓ ↓H
␈↓1␈↓∂/Q	␈↓β(ac divided by q-reg, result (quotient) in ac)
␈↓ ↓H
␈↓1␈↓∂\Q	␈↓β(q-reg divided by ac, result (quotient) in ac)
␈↓ ↓H
␈↓1␈↓∂~Q	␈↓β(maximum of ac and q-reg, result in ac)
␈↓ ↓H
␈↓1␈↓∂_Q	␈↓β(minimum of ac and q-reg, result in ac)
␈↓ ↓H
␈↓1␈↓∂→Q	␈↓β(store contents of ac into q-reg, immediate operand not allowed)
␈↓ ↓H
␈↓1␈↓∂↑Q	␈↓β(move text up q/200 inch)
␈↓ ↓H
␈↓1␈↓∂↓Q	␈↓β(move text down q/200 inch)
␈↓ ↓H
␈↓1␈↓∂∩	␈↓β(up to default superscript location)
␈↓ ↓H
␈↓1␈↓∂∪	␈↓β(down to default subscript location)
␈↓ ↓H
␈↓1␈↓∂⊗	␈↓β(back to normal baseline from superscript or subscript, don't forget this!)
␈↓ ↓H
␈↓1␈↓∂ULABR	␈↓β␈↓ αK(underline␈α
from␈α
location␈α
L␈α
to␈α
location␈αR,␈αon␈αscan␈αline␈αA,␈αwith␈αline␈αthickness␈αB␈α--␈αeach␈αof
␈↓ αKthe␈α
arguments␈α
L,A,B,R␈α
may␈α
be␈α
a␈α
q-register␈α
or␈α
a␈α
special␈α
operand)
␈↓1␈↓∂j␈↓β ␈↓1␈↓∂r␈↓β or ␈↓1␈↓∂c
␈↓ ↓H
␈↓β␈↓ αK(same␈αas␈α␈↓1␈↓∂J␈α␈↓1␈↓∂R␈αor␈α␈↓1␈↓∂C␈↓β␈αexcept␈αthey␈αset␈αup␈αtemporary␈αmargins␈αfrom␈αq-registers␈αl␈αand␈αr,
␈↓ αKthen␈α
restore␈α
L␈α
and␈α
R␈α
to␈α
their␈α
old␈α
values␈α
upon␈α
exit)

␈↓ ↓H
␈↓α␈↓ ∧HThis writeup is ␈↓↓POX.WRU[XGP,REM]  ␈↓βp.3

␈↓ ↓H
␈↓∧Example of usage, making five columns on a page:␈↓β
␈↓ ↓H
␈↓1␈↓∂←R␈↓1␈↓∂-L␈↓1␈↓∂/'5;␈↓1␈↓∂→W␈↓1␈↓∂.			␈↓βq-reg W contains width of a col
␈↓ ↓H
␈↓1␈↓∂←L␈↓1␈↓∂→1␈↓1␈↓∂+W␈↓1␈↓∂→2␈↓1␈↓∂+W␈↓1␈↓∂→3␈↓1␈↓∂+W␈↓1␈↓∂→4␈↓1␈↓∂+W␈↓1␈↓∂→5␈↓1␈↓∂.	␈↓βq-reg's 1,2,3,4,5 contain the column loc's
␈↓ ↓H
␈↓1␈↓∂←1␈↓1␈↓∂→.Hello␈↓1␈↓∂←2␈↓1␈↓∂→.This␈↓1␈↓∂←3␈↓1␈↓∂→.Is␈↓1␈↓∂←4␈↓1␈↓∂→.A␈↓1␈↓∂←5␈↓1␈↓∂→.Test.␈↓1␈↓∂.	␈↓βone word in each column
␈↓ ↓H
␈↓ ↓HHello␈↓ βNThis␈↓ ¬TIs␈↓ πZA␈↓ 	`Test.
␈↓ ↓H
␈↓ πZ␈↓↓X␈↓α␈↓#
x+2-i␈↓ πm␈↓#sfoo␈↓ λ-␈↓#␈↓↓+Y␈↓α␈↓#
2␈↓ λR␈↓#sbaz␈↓#␈↓ πZ␈↓!2↓#␈↓ πZ␈↓!3↓#␈↓ λ⎇␈↓ ↓H␈↓↓You␈↓ βN␈↓αWonder␈↓ ¬T␈↓βWhat␈↓ 	`␈↓∧Means??
␈↓ ↓H
␈↓ πZ␈↓α  (x+y)␈↓β␈↓#
4␈↓∂␈↓#
+i␈↓#
␈↓ ↓H

␈↓ ↓H
␈↓∧Example showing how to do a simple subscript:
␈↓ ↓H
␈↓1␈↓∂F3x␈↓1␈↓∂∪1␈↓1␈↓∂⊗+x␈↓1␈↓∂∪2␈↓1␈↓∂⊗+...+x␈↓1␈↓∂∪n␈↓1␈↓∂⊗
␈↓ ↓H
␈↓βx␈↓#s1␈↓#+x␈↓#s2␈↓#+...+x␈↓#sn␈↓#
␈↓ ↓H

␈↓ ↓H
␈↓∧Commands not yet implemented but maybe coming someday␈↓ ↓H␈↓!→¬R␈↓ ↓H␈↓!~¬R␈↓ π~:
␈↓ ↓H
␈↓1␈↓∂≡		␈↓ β"␈↓β(begins␈α
"pass␈α
exactly␈α
as-is"␈α
mode,␈α
suppresses␈α
/XJ␈α
mode␈α
until␈α
␈↓1␈↓∂.␈↓β␈α
occurs)
␈↓1␈↓∂uAB		␈↓ β"␈↓β(underlines␈α⊂the␈α⊂following␈α⊂word,␈α⊂would␈α⊂work␈α⊂in␈α⊂paragraph␈α⊂mode␈α⊂hopefully␈α⊂--␈α∂see
␈↓ β"␈↓1␈↓∂ULABR␈↓β␈α
for␈α
parameters)
␈↓1␈↓∂⊂<NAME>;		␈↓ β"␈↓β(begin␈α
nested␈α
inset)
␈↓1␈↓∂⊃		␈↓ β"␈↓β(end␈α
nested␈α
inset,␈α
enter␈α
its␈α
ascii␈α
name␈α
in␈α
symbol␈α
table,␈α
and␈α
write␈α
its␈αwidth,␈αheight,
␈↓ β"and␈α
other␈α
parameters␈α
into␈α
some␈α
q-registers␈α
--␈α
particulars␈α
to␈α
be␈α
specified␈α
later)
␈↓1␈↓∂∂<NAME>;<P>∂	␈↓ β"␈↓β(invoke␈α
an␈α
instance␈α
of␈α
nested␈α
inset)

␈↓ ↓H
␈↓∧Switches not yet implemented but maybe coming someday␈↓ ↓H␈↓!→¬?␈↓ ↓H␈↓!~¬?␈↓ ππ:
␈↓ ↓H
␈↓∂/XAPJUS		␈↓ β"␈↓β(no␈α∞command␈α∞characters␈α∞allowed␈α∞in␈α∞the␈α∞file,␈α∞will␈α∞replace␈α
XAPJUS.SAI␈α
2-way␈α
mode
␈↓ β"with␈α
multicolumn␈α
feature,␈α
no␈α
4-way␈α
mode␈α
is␈α
planned)
␈↓∂/XJ			␈↓ β"␈↓β(text␈α∂will␈α∂be␈α∂parsed␈α∂by␈α∂xapjus␈α∂scanner,␈α∂except␈α∞during␈α∞periods␈α∞during␈α∞which␈α∞some
␈↓ β"special␈α
mode␈α
(such␈α
as␈α
␈↓1␈↓∂J␈α
␈↓1␈↓∂≡␈↓β)␈α
is␈α
in␈α
effect)
␈↓∂/SAMPLE		␈↓ β"␈↓β(looking␈α
in␈α
XGPSYS.UFD,␈α
samples␈α
of␈α
all␈α
fonts␈α
will␈α
be␈α
generated,␈α
output␈αfiles␈αwill␈αbe
␈↓ β"XGP<jobnum>.<N>␈α
with␈α
fifteen␈α
different␈α
fonts␈α
in␈α
each␈α
file)

␈↓ ↓H
␈↓β␈↓ ∧|If␈α→I␈α→add␈α→any␈α→new␈α_glorious␈α_features,␈α_the
␈↓ ∧|remainder␈α∞of␈α∞this␈α∞page␈α∞will␈α
show␈α
examples␈α
of
␈↓ ∧|the␈α
beautiful␈α
things␈α
you␈α
can␈αuse␈αthem␈αfor.␈αFor
␈↓ ∧|now,␈α
mostly␈α
blank␈α
space␈α
on␈α
this␈α
page...

␈↓ ↓H
␈↓βLeft␈↓ ε2Center␈↓ *Right